feat: Add Grafana integration#3040
feat: Add Grafana integration#3040mfuzailzubari wants to merge 158 commits intosuperplanehq:mainfrom
Conversation
|
@mfuzailzubari thank you for submitting this one! |
Conflits are resolved, moving on to other findings. |
|
Fixed all the issues raised in the thread. |
|
@mfuzailzubari I have not managed to set this up fully - I tested the query component and it worked, but the trigger one is not good. We need to avoid user having to configure these webhooks manually if there are API endpoints through which we can do this. |
fixed it. please check. |
|
@mfuzailzubari managed to get it to work. |
web_src/src/pages/workflowv2/mappers/grafana/on_alert_firing.ts
Outdated
Show resolved
Hide resolved
|
Also, the CI tests should pass |
Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…ent docs (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
… UI-editable (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…uperplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
… datasource listing (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…egacy API key fallback) (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
… copy button (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…te firing trigger on top-level status (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…onAlertFiring setup Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…lanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…lanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
This PR bootstraps AWS SNS integration support. Implemented SNS components: - `aws.sns.onTopicMessage` - `aws.sns.getTopic` - `aws.sns.getSubscription` - `aws.sns.createTopic` - `aws.sns.deleteTopic` - `aws.sns.publishMessage` --------- Signed-off-by: Fadhili Juma <ffumwa@gmail.com> Signed-off-by: Lucas Pinheiro <lucas@superplane.com> Co-authored-by: Lucas Pinheiro <lucas@superplane.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
Three new GitLab components: - `gitlab.getPipeline` - fetch information about a pipeline - `gitlab.getLatestPipeline` - fetch the latest pipeline on a ref - `gitlab.getTestReportSummary` - fetch the test report summary for a pipeline --------- Signed-off-by: Lucas Pinheiro <lucas@superplane.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
New components for GItLab: - New gitlab.onPipeline trigger to listen to GitLab pipeline events - New gitlab.runPipeline trigger to run GitLab pipelines --------- Signed-off-by: Lucas Pinheiro <lucas@superplane.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
Signed-off-by: Igor Šarčević <igor@operately.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…anehq#3116) Signed-off-by: Igor Šarčević <igor@operately.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
This PR overhauls the SuperPlane CLI command structure to make resource discovery and canvas workflows easier, while also making command implementation more maintainable. Before: ``` superplane <action> <resource> ``` Now ``` superplane <resource> <action> ``` The new structure makes it easier to discover things, build an internal structure to extend the commands and sub-commands going forward, and is also a pattern used in other CLIs - [see gh](https://github.com/cli/cli). ### CLI internals - Refactored CLI internals into a reusable command framework: - Added `pkg/cli/core` with shared command binding/context logic. - Added centralized output rendering with support for `text`, `json`, and `yaml`. - Reorganized CLI commands into resource-focused groups under `pkg/cli/commands/*` ### New discovery-focused commands: - `superplane integrations list --connected` - `superplane integrations list-resources --id <integration-id> --type <resource-type> [--parameters key=value,...]` - `superplane components list --from <integration>` - `superplane triggers list --from <integration>` ### Global output flag You can control the output of the commands now with `--output` flag. Available options are: json / yaml / text. --------- Signed-off-by: Lucas Pinheiro <lucas@superplane.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
Signed-off-by: Igor Šarčević <igor@operately.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…rplanehq#3131) Right now, we have this: ``` superplane integrations list -> list available integrations superplane integrations list --connected -> list connected integrations superplane integrations get <integration-name> -> get details about an available integration ``` The issue here is that we also need commands for managing connected integrations, and having them and the discovery-related commands under the same root is a bit confusing. So, I'm moving all the discovery-related commands to a new index command: ``` superplane index integrations superplane index integrations --name <integration-name> superplane index triggers superplane index triggers --from <integration-name> superplane index triggers --name <trigger-name> superplane index components superplane index components --from <integration-name> superplane index components --name <trigger-name> ``` With that, everything under the index command is about discovery, and finding available integrations, triggers, and components you can use, and `superplane integrations` becomes about managing connected integrations. --------- Signed-off-by: Lucas Pinheiro <lucas@superplane.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…ls consistency (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…shared secret input (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
… UI-editable (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…uperplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
…egacy API key fallback) (superplanehq#1945) Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>
db83eab to
f7a4c8c
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| @@ -0,0 +1,2 @@ | |||
| ALTER TABLE app_installations | |||
| ALTER COLUMN state_description TYPE character varying(1024); | |||
There was a problem hiding this comment.
New migrations missing down migration files
Medium Severity
Both new migration files are added without corresponding .down.sql counterparts. Every one of the 50+ existing migrations in the codebase has a paired .down.sql file. Without down migrations, schema changes from these two migrations cannot be rolled back, and any tooling or CI checks that enforce migration symmetry will fail.


Implements #1945
This PR implements the Grafana integration with:
Authorization:
Implementation notes:
Demo video: https://drive.google.com/file/d/117GAjLWyp2pic79nzOqDvvDm64-qA094/view?usp=sharing